import React, { Component } from 'react'

export default class Son2 extends Component {
    render() {
        console.log('render-son2', this.props.money2);
        return (
            <div>
                <p>我是子组件2-李四-{this.props.money2}</p>
                <ul>
                    {
                        this.props.girls2.map((item, index) => {
                            return <li key={index}>{item}</li>
                        })
                    }
                </ul>
            </div>
        )
    };
    shouldComponentUpdate(props, state) {
        //作用: 是否决定该组价是否渲染, 根据该生命周期的返回值决定.
        //特点: 该生命周期必须有返回值, 返回值为一个boolean 值
        // 默认返回 true, 渲染该组件, 返回false 表示不渲染该组件
        // 执行时间: 在render之前执行, 并且初始化不执行
        // 该生命周期做性能优化使用

        // 形参props: 表示最新的props
        // this.props 为上一次的props. 未更新前的props
        // this.props 为啥是旧的props, 因为该生命周期的执行时间是render前, 
        // 还没有更新,在该位置决定是否更新,所以组件实例上挂载的props 还是上一次的props
        // console.log('shouldComponentUpdate');

        // console.log(props, this.props);
        // 根据两次的props比较, 判断是否更新当前组件, 如果props 变化了则更新
        if (props.money2 === this.props.money2) {
            return false
        } else {
            return true
        }
    }
}

